<?php

/**
 * BIBLIOTECARIO actions.
 *
 * @package    OPENBIBLIOSOFT
 * @subpackage BIBLIOTECARIO
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 12474 2008-10-31 10:41:27Z fabien $
 */
class BIBLIOTECARIOActions extends sfActions
{
  public function executeIndex(sfWebRequest $request)
  {
    //$this->bibliotecario_list = BibliotecarioPeer::doSelect(new Criteria());
  }
  
	public function executeListar()
	{
		$buscar = $this->getRequestParameter('Busqueda');
		$buscar = "%".$buscar."%";
		$campo = $this->getRequestParameter('Campo');
		
		$conexion = new Criteria();
		
		
		if($campo == 'Nombre'){ $conexion->add(BibliotecarioPeer::NOMBRE, $buscar, Criteria::LIKE);}
		if($campo == 'Identificacion'){ $conexion->add(BibliotecarioPeer::IDENTIFICACION, $buscar, Criteria::LIKE);}
		if($campo == 'Direccion'){ $conexion->add(BibliotecarioPeer::DIRECCION, $buscar, Criteria::LIKE);}
		if($campo == 'Telefono'){ $conexion->add(BibliotecarioPeer::TELEFONO, $buscar, Criteria::LIKE);}
		if($campo == 'Universidad'){ $conexion->add(BibliotecarioPeer::UNIVERSIDAD, $buscar, Criteria::LIKE);}
		if($campo == 'Todos')
		{		
			$c1 = $conexion->getNewCriterion(BibliotecarioPeer::NOMBRE, $buscar, Criteria::LIKE);
			$c2 = $conexion->getNewCriterion(BibliotecarioPeer::IDENTIFICACION, $buscar, Criteria::LIKE);
			$c3 = $conexion->getNewCriterion(BibliotecarioPeer::DIRECCION, $buscar, Criteria::LIKE);
			$c4 = $conexion->getNewCriterion(BibliotecarioPeer::TELEFONO, $buscar, Criteria::LIKE);
			$c5 = $conexion->getNewCriterion(BibliotecarioPeer::UNIVERSIDAD, $buscar, Criteria::LIKE);
			$c4->addOr($c5);
			$c3->addOr($c4);
			$c2->addOr($c3);
			$c1->addOr($c2);
			$conexion->add($c1);
		}
		
		$numeroBibliotecarios = BibliotecarioPeer::doCount($conexion);
		$conexion->setLimit($this->getRequestParameter('limit'));
		$conexion->setOffset($this->getRequestParameter('start'));
		$Bibliotecarios = BibliotecarioPeer::doSelect($conexion);
		$pos = 0;
		$nbrows=0;
		$datos;
		
		foreach ($Bibliotecarios As $temporal)
		{
			$datos[$pos]['bibliotecarioId']=$temporal->getId();
			$datos[$pos]['bibliotecarioIdentificacion']=$temporal->getIdentificacion();
			$datos[$pos]['bibliotecarioNombre']=$temporal->getNombre();
			$datos[$pos]['bibliotecarioDireccion']=$temporal->getDireccion();
			$datos[$pos]['bibliotecarioTelefono']=$temporal->getTelefono();
			$datos[$pos]['bibliotecarioUniversidad']=$temporal->getUniversidad();
			
			$pos++;
			$nbrows++;
		}
		
		if($nbrows>0){
			$jsonresult = json_encode($datos);
			return  $this->renderText('({"total":"'.$numeroBibliotecarios.'","results":'.$jsonresult.'})');
		}
		else {
			return  $this->renderText('({"total":"0", "results":""})');
		}
	}
	
	public function executeGuardar()
	{
		$bibliotecario = new Bibliotecario();			  
		$bibliotecario->setNombre($this->getRequestParameter('Nombre'));
		$bibliotecario->setIdentificacion($this->getRequestParameter('Identificacion'));
		$bibliotecario->setDireccion($this->getRequestParameter('Direccion'));
		$bibliotecario->setTelefono($this->getRequestParameter('Telefono'));
		$bibliotecario->setUniversidad($this->getRequestParameter('Universidad'));

		try
		{
			$bibliotecario->save();
		}
		catch (Exception $excepcionBibliotecario)
		{
			return  $this->renderText("({success: false, errors: { reason: 'Hubo un problema creando el bibliotecario: ".$this->getRequestParameter('Nombre')."'}})");
		}
		return  $this->renderText("({success: true, mensaje:'El bibliotecario fue creado exitosamente'})");
	}
	
	public function executeActualizar()
	{
		$bibliotecarioId = $this->getRequestParameter('ID');
		$conexion = new Criteria();
		$conexion->add(BibliotecarioPeer::ID, $bibliotecarioId);
		$bibliotecario = BibliotecarioPeer::doSelectOne($conexion);
		$salida = '';

		if($bibliotecario)
		{
				$bibliotecario->setNombre($this->getRequestParameter('Nombre'));
				$bibliotecario->setIdentificacion($this->getRequestParameter('Identificacion'));
				$bibliotecario->setDireccion($this->getRequestParameter('Direccion'));
				$bibliotecario->setTelefono($this->getRequestParameter('Telefono'));
				$bibliotecario->setUniversidad($this->getRequestParameter('Universidad'));
			  	try
		      	{
		        	$bibliotecario->save();
		      	}
		      	catch (Exception $excepcionBibliotecario)
		      	{
		          	return  $this->renderText("({success: false, errors: { reason: 'Problemas al actualizar el bibliotecario: ".$this->getRequestParameter('modNombre')."'}})");
		        
		      	}
				return  $this->renderText("({success: true, mensaje:'El bibliotecario fue actualizado exitosamente'})");
		} else {
			return  $this->renderText("({success: false, errors: { reason: 'No se a actualizado el bibliotecario corecctamente'}})");
		}
	}
	
	public function executeEliminar()
	{
		$id = $this->getRequestParameter('ID');

		$conexion = new Criteria();
		$conexion->add(BibliotecarioPeer::ID, $id);
		if($conexion)
		{
			$borrarBibliotecario = BibliotecarioPeer::doSelect($conexion);
			foreach ($borrarBibliotecario as $elemento)
			{
				$elemento->delete();
			}
			return  $this->renderText("({success: true, mensaje:'El bibliotecario fue eliminado exitosamente'})");
		}
		else
		{
			return  $this->renderText("({success: false, errors: { reason: 'No se pudo eliminar el bibliotecario'}})");
		}
	}
}